// Upgrade NOTE: commented out 'float4x4 _World2Object', a built-in variable
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "Legacy Shaders/Reflective/Diffuse" {
Properties {
 _Color ("Main Color", Color) = (1,1,1,1)
 _ReflectColor ("Reflection Color", Color) = (1,1,1,0.5)
 _MainTex ("Base (RGB) RefStrength (A)", 2D) = "white" { }
 _Cube ("Reflection Cubemap", CUBE) = "_Skybox" { }
}
SubShader { 
 LOD 200
 Tags { "RenderType"="Opaque" }
 Pass {
  Name "FORWARD"
  Tags { "LIGHTMODE"="ForwardBase" "SHADOWSUPPORT"="true" "RenderType"="Opaque" }
  GpuProgramID 10142
CGPROGRAM
//#pragma target 4.0

#pragma vertex vert
#pragma fragment frag

#include "UnityCG.cginc"
#define conv_mxt4x4_0(mat4x4) float4(mat4x4[0].x,mat4x4[1].x,mat4x4[2].x,mat4x4[3].x)
#define conv_mxt4x4_1(mat4x4) float4(mat4x4[0].y,mat4x4[1].y,mat4x4[2].y,mat4x4[3].y)
#define conv_mxt4x4_2(mat4x4) float4(mat4x4[0].z,mat4x4[1].z,mat4x4[2].z,mat4x4[3].z)
#define conv_mxt4x4_3(mat4x4) float4(mat4x4[0].w,mat4x4[1].w,mat4x4[2].w,mat4x4[3].w)


#define CODE_BLOCK_VERTEX
//uniform float3 _WorldSpaceCameraPos;
//uniform float4 unity_SHAr;
//uniform float4 unity_SHAg;
//uniform float4 unity_SHAb;
//uniform float4 unity_SHBr;
//uniform float4 unity_SHBg;
//uniform float4 unity_SHBb;
//uniform float4 unity_SHC;
//uniform float4x4 UNITY_MATRIX_MVP;
//uniform float4x4 unity_ObjectToWorld;
// uniform float4x4 _World2Object;
uniform float4 _MainTex_ST;
//uniform float4 _WorldSpaceLightPos0;
uniform float4 _LightColor0;
uniform sampler2D _MainTex;
uniform samplerCUBE _Cube;
uniform float4 _Color;
uniform float4 _ReflectColor;
struct appdata_t
{
    float4 vertex :POSITION;
    float3 normal :NORMAL;
    float4 texcoord :TEXCOORD0;
};

struct OUT_Data_Vert
{
    float2 xlv_TEXCOORD0 :TEXCOORD0;
    float3 xlv_TEXCOORD1 :TEXCOORD1;
    float3 xlv_TEXCOORD2 :TEXCOORD2;
    float3 xlv_TEXCOORD3 :TEXCOORD3;
    float3 xlv_TEXCOORD4 :TEXCOORD4;
    float4 vertex :SV_POSITION;
};

struct v2f
{
    float2 xlv_TEXCOORD0 :TEXCOORD0;
    float3 xlv_TEXCOORD1 :TEXCOORD1;
    float3 xlv_TEXCOORD2 :TEXCOORD2;
    float3 xlv_TEXCOORD4 :TEXCOORD4;
};

struct OUT_Data_Frag
{
    float4 color :SV_Target0;
};

OUT_Data_Vert vert(appdata_t in_v)
{
    OUT_Data_Vert out_v;
    float3 worldNormal_1;
    float3 tmpvar_2;
    float3 tmpvar_3;
    float3 tmpvar_4;
    tmpvar_4 = mul(unity_ObjectToWorld, in_v.vertex).xyz;
    float4 v_5;
    v_5.x = conv_mxt4x4_0(unity_WorldToObject).x;
    v_5.y = conv_mxt4x4_1(unity_WorldToObject).x;
    v_5.z = conv_mxt4x4_2(unity_WorldToObject).x;
    v_5.w = conv_mxt4x4_3(unity_WorldToObject).x;
    float4 v_6;
    v_6.x = conv_mxt4x4_0(unity_WorldToObject).y;
    v_6.y = conv_mxt4x4_1(unity_WorldToObject).y;
    v_6.z = conv_mxt4x4_2(unity_WorldToObject).y;
    v_6.w = conv_mxt4x4_3(unity_WorldToObject).y;
    float4 v_7;
    v_7.x = conv_mxt4x4_0(unity_WorldToObject).z;
    v_7.y = conv_mxt4x4_1(unity_WorldToObject).z;
    v_7.z = conv_mxt4x4_2(unity_WorldToObject).z;
    v_7.w = conv_mxt4x4_3(unity_WorldToObject).z;
    float3 tmpvar_8;
    tmpvar_8 = normalize((((v_5.xyz * in_v.normal.x) + (v_6.xyz * in_v.normal.y)) + (v_7.xyz * in_v.normal.z)));
    worldNormal_1 = tmpvar_8;
    tmpvar_3 = worldNormal_1;
    float3 tmpvar_9;
    float3 I_10;
    I_10 = (tmpvar_4 - _WorldSpaceCameraPos);
    tmpvar_9 = (I_10 - (2 * (dot(worldNormal_1, I_10) * worldNormal_1)));
    tmpvar_2 = tmpvar_9;
    float3 normal_11;
    normal_11 = worldNormal_1;
    float4 tmpvar_12;
    tmpvar_12.w = 1;
    tmpvar_12.xyz = float3(normal_11);
    float3 res_13;
    float3 x_14;
    x_14.x = dot(unity_SHAr, tmpvar_12);
    x_14.y = dot(unity_SHAg, tmpvar_12);
    x_14.z = dot(unity_SHAb, tmpvar_12);
    float3 x1_15;
    float4 tmpvar_16;
    tmpvar_16 = (normal_11.xyzz * normal_11.yzzx);
    x1_15.x = dot(unity_SHBr, tmpvar_16);
    x1_15.y = dot(unity_SHBg, tmpvar_16);
    x1_15.z = dot(unity_SHBb, tmpvar_16);
    res_13 = (x_14 + (x1_15 + (unity_SHC.xyz * ((normal_11.x * normal_11.x) - (normal_11.y * normal_11.y)))));
    float _tmp_dvx_93 = max(((1.055 * pow(max(res_13, float3(0, 0, 0)), float3(0.4166667, 0.4166667, 0.4166667))) - 0.055), float3(0, 0, 0));
    res_13 = float3(_tmp_dvx_93, _tmp_dvx_93, _tmp_dvx_93);
    out_v.vertex = UnityObjectToClipPos(in_v.vertex);
    out_v.xlv_TEXCOORD0 = TRANSFORM_TEX(in_v.texcoord.xy, _MainTex);
    out_v.xlv_TEXCOORD1 = tmpvar_2;
    out_v.xlv_TEXCOORD2 = tmpvar_3;
    out_v.xlv_TEXCOORD3 = tmpvar_4;
    out_v.xlv_TEXCOORD4 = max(float3(0, 0, 0), res_13);
    return out_v;
}

#define CODE_BLOCK_FRAGMENT
OUT_Data_Frag frag(v2f in_f)
{
    OUT_Data_Frag out_f;
    float3 tmpvar_1;
    float3 tmpvar_2;
    float4 c_3;
    float3 tmpvar_4;
    float3 lightDir_5;
    float3 tmpvar_6;
    float3 tmpvar_7;
    tmpvar_7 = _WorldSpaceLightPos0.xyz;
    lightDir_5 = tmpvar_7;
    tmpvar_6 = in_f.xlv_TEXCOORD1;
    tmpvar_4 = in_f.xlv_TEXCOORD2;
    float4 reflcol_8;
    float4 tmpvar_9;
    tmpvar_9 = tex2D(_MainTex, in_f.xlv_TEXCOORD0);
    float4 tmpvar_10;
    tmpvar_10 = (tmpvar_9 * _Color);
    reflcol_8 = (texCUBE(_Cube, tmpvar_6) * tmpvar_9.w);
    tmpvar_1 = _LightColor0.xyz;
    tmpvar_2 = lightDir_5;
    float4 c_11;
    float4 c_12;
    float diff_13;
    float tmpvar_14;
    tmpvar_14 = max(0, dot(tmpvar_4, tmpvar_2));
    diff_13 = tmpvar_14;
    c_12.xyz = ((tmpvar_10.xyz * tmpvar_1) * diff_13);
    c_12.w = (reflcol_8.w * _ReflectColor.w);
    c_11.w = c_12.w;
    c_11.xyz = (c_12.xyz + (tmpvar_10.xyz * in_f.xlv_TEXCOORD4));
    c_3.xyz = (c_11.xyz + (reflcol_8.xyz * _ReflectColor.xyz));
    c_3.w = 1;
    out_f.color = c_3;
    return out_f;
}


ENDCG

}
 Pass {
  Name "FORWARD"
  Tags { "LIGHTMODE"="ForwardAdd" "RenderType"="Opaque" }
  ZWrite Off
  Blend One One
  GpuProgramID 95176
CGPROGRAM
//#pragma target 4.0

#pragma vertex vert
#pragma fragment frag

#include "UnityCG.cginc"
#define conv_mxt4x4_0(mat4x4) float4(mat4x4[0].x,mat4x4[1].x,mat4x4[2].x,mat4x4[3].x)
#define conv_mxt4x4_1(mat4x4) float4(mat4x4[0].y,mat4x4[1].y,mat4x4[2].y,mat4x4[3].y)
#define conv_mxt4x4_2(mat4x4) float4(mat4x4[0].z,mat4x4[1].z,mat4x4[2].z,mat4x4[3].z)
#define conv_mxt4x4_3(mat4x4) float4(mat4x4[0].w,mat4x4[1].w,mat4x4[2].w,mat4x4[3].w)


#define CODE_BLOCK_VERTEX
//uniform float4x4 UNITY_MATRIX_MVP;
//uniform float4x4 unity_ObjectToWorld;
// uniform float4x4 _World2Object;
uniform float4 _MainTex_ST;
//uniform float4 _WorldSpaceLightPos0;
uniform float4 _LightColor0;
uniform sampler2D _LightTexture0;
uniform float4x4 unity_WorldToLight;
uniform sampler2D _MainTex;
uniform samplerCUBE _Cube;
uniform float4 _Color;
uniform float4 _ReflectColor;
struct appdata_t
{
    float4 vertex :POSITION;
    float3 normal :NORMAL;
    float4 texcoord :TEXCOORD0;
};

struct OUT_Data_Vert
{
    float2 xlv_TEXCOORD0 :TEXCOORD0;
    float3 xlv_TEXCOORD1 :TEXCOORD1;
    float3 xlv_TEXCOORD2 :TEXCOORD2;
    float4 vertex :SV_POSITION;
};

struct v2f
{
    float2 xlv_TEXCOORD0 :TEXCOORD0;
    float3 xlv_TEXCOORD1 :TEXCOORD1;
    float3 xlv_TEXCOORD2 :TEXCOORD2;
};

struct OUT_Data_Frag
{
    float4 color :SV_Target0;
};

OUT_Data_Vert vert(appdata_t in_v)
{
    OUT_Data_Vert out_v;
    float3 worldNormal_1;
    float3 tmpvar_2;
    float4 v_3;
    v_3.x = conv_mxt4x4_0(unity_WorldToObject).x;
    v_3.y = conv_mxt4x4_1(unity_WorldToObject).x;
    v_3.z = conv_mxt4x4_2(unity_WorldToObject).x;
    v_3.w = conv_mxt4x4_3(unity_WorldToObject).x;
    float4 v_4;
    v_4.x = conv_mxt4x4_0(unity_WorldToObject).y;
    v_4.y = conv_mxt4x4_1(unity_WorldToObject).y;
    v_4.z = conv_mxt4x4_2(unity_WorldToObject).y;
    v_4.w = conv_mxt4x4_3(unity_WorldToObject).y;
    float4 v_5;
    v_5.x = conv_mxt4x4_0(unity_WorldToObject).z;
    v_5.y = conv_mxt4x4_1(unity_WorldToObject).z;
    v_5.z = conv_mxt4x4_2(unity_WorldToObject).z;
    v_5.w = conv_mxt4x4_3(unity_WorldToObject).z;
    float3 tmpvar_6;
    tmpvar_6 = normalize((((v_3.xyz * in_v.normal.x) + (v_4.xyz * in_v.normal.y)) + (v_5.xyz * in_v.normal.z)));
    worldNormal_1 = tmpvar_6;
    tmpvar_2 = worldNormal_1;
    out_v.vertex = UnityObjectToClipPos(in_v.vertex);
    out_v.xlv_TEXCOORD0 = TRANSFORM_TEX(in_v.texcoord.xy, _MainTex);
    out_v.xlv_TEXCOORD1 = tmpvar_2;
    out_v.xlv_TEXCOORD2 = mul(unity_ObjectToWorld, in_v.vertex).xyz;
    return out_v;
}

#define CODE_BLOCK_FRAGMENT
OUT_Data_Frag frag(v2f in_f)
{
    OUT_Data_Frag out_f;
    float3 tmpvar_1;
    float3 tmpvar_2;
    float4 c_3;
    float3 tmpvar_4;
    float3 lightDir_5;
    float3 tmpvar_6;
    tmpvar_6.x = 1;
    float3 tmpvar_7;
    tmpvar_7 = normalize((_WorldSpaceLightPos0.xyz - in_f.xlv_TEXCOORD2));
    lightDir_5 = tmpvar_7;
    tmpvar_4 = in_f.xlv_TEXCOORD1;
    float4 tmpvar_8;
    tmpvar_8 = tex2D(_MainTex, in_f.xlv_TEXCOORD0);
    float4 tmpvar_9;
    tmpvar_9.w = 1;
    tmpvar_9.xyz = in_f.xlv_TEXCOORD2;
    float3 tmpvar_10;
    tmpvar_10 = mul(unity_WorldToLight, tmpvar_9).xyz;
    float tmpvar_11;
    tmpvar_11 = dot(tmpvar_10, tmpvar_10);
    float tmpvar_12;
    tmpvar_12 = tex2D(_LightTexture0, float2(tmpvar_11, tmpvar_11)).w;
    tmpvar_1 = _LightColor0.xyz;
    tmpvar_2 = lightDir_5;
    tmpvar_1 = (tmpvar_1 * tmpvar_12);
    float4 c_13;
    float4 c_14;
    float diff_15;
    float tmpvar_16;
    tmpvar_16 = max(0, dot(tmpvar_4, tmpvar_2));
    diff_15 = tmpvar_16;
    c_14.xyz = (((tmpvar_8 * _Color).xyz * tmpvar_1) * diff_15);
    c_14.w = ((texCUBE(_Cube, tmpvar_6) * tmpvar_8.w).w * _ReflectColor.w);
    c_13.w = c_14.w;
    c_13.xyz = c_14.xyz;
    c_3.xyz = c_13.xyz;
    c_3.w = 1;
    out_f.color = c_3;
    return out_f;
}


ENDCG

}
 Pass {
  Name "PREPASS"
  Tags { "LIGHTMODE"="PrePassBase" "RenderType"="Opaque" }
  GpuProgramID 175298
CGPROGRAM
//#pragma target 4.0

#pragma vertex vert
#pragma fragment frag

#include "UnityCG.cginc"
#define conv_mxt4x4_0(mat4x4) float4(mat4x4[0].x,mat4x4[1].x,mat4x4[2].x,mat4x4[3].x)
#define conv_mxt4x4_1(mat4x4) float4(mat4x4[0].y,mat4x4[1].y,mat4x4[2].y,mat4x4[3].y)
#define conv_mxt4x4_2(mat4x4) float4(mat4x4[0].z,mat4x4[1].z,mat4x4[2].z,mat4x4[3].z)
#define conv_mxt4x4_3(mat4x4) float4(mat4x4[0].w,mat4x4[1].w,mat4x4[2].w,mat4x4[3].w)


#define CODE_BLOCK_VERTEX
//uniform float4x4 UNITY_MATRIX_MVP;
//uniform float4x4 unity_ObjectToWorld;
// uniform float4x4 _World2Object;
struct appdata_t
{
    float4 vertex :POSITION;
    float3 normal :NORMAL;
};

struct OUT_Data_Vert
{
    float3 xlv_TEXCOORD0 :TEXCOORD0;
    float3 xlv_TEXCOORD1 :TEXCOORD1;
    float4 vertex :SV_POSITION;
};

struct v2f
{
    float3 xlv_TEXCOORD0 :TEXCOORD0;
};

struct OUT_Data_Frag
{
    float4 color :SV_Target0;
};

OUT_Data_Vert vert(appdata_t in_v)
{
    OUT_Data_Vert out_v;
    float3 worldNormal_1;
    float3 tmpvar_2;
    float4 v_3;
    v_3.x = conv_mxt4x4_0(unity_WorldToObject).x;
    v_3.y = conv_mxt4x4_1(unity_WorldToObject).x;
    v_3.z = conv_mxt4x4_2(unity_WorldToObject).x;
    v_3.w = conv_mxt4x4_3(unity_WorldToObject).x;
    float4 v_4;
    v_4.x = conv_mxt4x4_0(unity_WorldToObject).y;
    v_4.y = conv_mxt4x4_1(unity_WorldToObject).y;
    v_4.z = conv_mxt4x4_2(unity_WorldToObject).y;
    v_4.w = conv_mxt4x4_3(unity_WorldToObject).y;
    float4 v_5;
    v_5.x = conv_mxt4x4_0(unity_WorldToObject).z;
    v_5.y = conv_mxt4x4_1(unity_WorldToObject).z;
    v_5.z = conv_mxt4x4_2(unity_WorldToObject).z;
    v_5.w = conv_mxt4x4_3(unity_WorldToObject).z;
    float3 tmpvar_6;
    tmpvar_6 = normalize((((v_3.xyz * in_v.normal.x) + (v_4.xyz * in_v.normal.y)) + (v_5.xyz * in_v.normal.z)));
    worldNormal_1 = tmpvar_6;
    tmpvar_2 = worldNormal_1;
    out_v.vertex = UnityObjectToClipPos(in_v.vertex);
    out_v.xlv_TEXCOORD0 = tmpvar_2;
    out_v.xlv_TEXCOORD1 = mul(unity_ObjectToWorld, in_v.vertex).xyz;
    return out_v;
}

#define CODE_BLOCK_FRAGMENT
OUT_Data_Frag frag(v2f in_f)
{
    OUT_Data_Frag out_f;
    float4 res_1;
    float3 tmpvar_2;
    tmpvar_2 = in_f.xlv_TEXCOORD0;
    res_1.xyz = float3(((tmpvar_2 * 0.5) + 0.5));
    res_1.w = 0;
    out_f.color = res_1;
    return out_f;
}


ENDCG

}
 Pass {
  Name "PREPASS"
  Tags { "LIGHTMODE"="PrePassFinal" "RenderType"="Opaque" }
  ZWrite Off
  GpuProgramID 229935
CGPROGRAM
//#pragma target 4.0

#pragma vertex vert
#pragma fragment frag

#include "UnityCG.cginc"
#define conv_mxt4x4_0(mat4x4) float4(mat4x4[0].x,mat4x4[1].x,mat4x4[2].x,mat4x4[3].x)
#define conv_mxt4x4_1(mat4x4) float4(mat4x4[0].y,mat4x4[1].y,mat4x4[2].y,mat4x4[3].y)
#define conv_mxt4x4_2(mat4x4) float4(mat4x4[0].z,mat4x4[1].z,mat4x4[2].z,mat4x4[3].z)
#define conv_mxt4x4_3(mat4x4) float4(mat4x4[0].w,mat4x4[1].w,mat4x4[2].w,mat4x4[3].w)


#define CODE_BLOCK_VERTEX
//uniform float3 _WorldSpaceCameraPos;
//uniform float4 _ProjectionParams;
//uniform float4 unity_SHAr;
//uniform float4 unity_SHAg;
//uniform float4 unity_SHAb;
//uniform float4 unity_SHBr;
//uniform float4 unity_SHBg;
//uniform float4 unity_SHBb;
//uniform float4 unity_SHC;
//uniform float4x4 UNITY_MATRIX_MVP;
//uniform float4x4 unity_ObjectToWorld;
// uniform float4x4 _World2Object;
uniform float4 _MainTex_ST;
uniform sampler2D _MainTex;
uniform samplerCUBE _Cube;
uniform float4 _Color;
uniform float4 _ReflectColor;
uniform sampler2D _LightBuffer;
struct appdata_t
{
    float4 vertex :POSITION;
    float3 normal :NORMAL;
    float4 texcoord :TEXCOORD0;
};

struct OUT_Data_Vert
{
    float2 xlv_TEXCOORD0 :TEXCOORD0;
    float3 xlv_TEXCOORD1 :TEXCOORD1;
    float3 xlv_TEXCOORD2 :TEXCOORD2;
    float4 xlv_TEXCOORD3 :TEXCOORD3;
    float4 xlv_TEXCOORD4 :TEXCOORD4;
    float3 xlv_TEXCOORD5 :TEXCOORD5;
    float4 vertex :SV_POSITION;
};

struct v2f
{
    float2 xlv_TEXCOORD0 :TEXCOORD0;
    float3 xlv_TEXCOORD1 :TEXCOORD1;
    float4 xlv_TEXCOORD3 :TEXCOORD3;
    float3 xlv_TEXCOORD5 :TEXCOORD5;
};

struct OUT_Data_Frag
{
    float4 color :SV_Target0;
};

OUT_Data_Vert vert(appdata_t in_v)
{
    OUT_Data_Vert out_v;
    float3 worldNormal_1;
    float4 tmpvar_2;
    float3 tmpvar_3;
    float4 tmpvar_4;
    float3 tmpvar_5;
    tmpvar_2 = UnityObjectToClipPos(in_v.vertex);
    float3 tmpvar_6;
    tmpvar_6 = mul(unity_ObjectToWorld, in_v.vertex).xyz;
    float4 v_7;
    float tmpvar_8;
    tmpvar_8 = conv_mxt4x4_0(unity_WorldToObject).x;
    v_7.x = tmpvar_8;
    float tmpvar_9;
    tmpvar_9 = conv_mxt4x4_1(unity_WorldToObject).x;
    v_7.y = tmpvar_9;
    float tmpvar_10;
    tmpvar_10 = conv_mxt4x4_2(unity_WorldToObject).x;
    v_7.z = tmpvar_10;
    float tmpvar_11;
    tmpvar_11 = conv_mxt4x4_3(unity_WorldToObject).x;
    v_7.w = tmpvar_11;
    float4 v_12;
    float tmpvar_13;
    tmpvar_13 = conv_mxt4x4_0(unity_WorldToObject).y;
    v_12.x = tmpvar_13;
    float tmpvar_14;
    tmpvar_14 = conv_mxt4x4_1(unity_WorldToObject).y;
    v_12.y = tmpvar_14;
    float tmpvar_15;
    tmpvar_15 = conv_mxt4x4_2(unity_WorldToObject).y;
    v_12.z = tmpvar_15;
    float tmpvar_16;
    tmpvar_16 = conv_mxt4x4_3(unity_WorldToObject).y;
    v_12.w = tmpvar_16;
    float4 v_17;
    float tmpvar_18;
    tmpvar_18 = conv_mxt4x4_0(unity_WorldToObject).z;
    v_17.x = tmpvar_18;
    float tmpvar_19;
    tmpvar_19 = conv_mxt4x4_1(unity_WorldToObject).z;
    v_17.y = tmpvar_19;
    float tmpvar_20;
    tmpvar_20 = conv_mxt4x4_2(unity_WorldToObject).z;
    v_17.z = tmpvar_20;
    float tmpvar_21;
    tmpvar_21 = conv_mxt4x4_3(unity_WorldToObject).z;
    v_17.w = tmpvar_21;
    float3 tmpvar_22;
    tmpvar_22 = normalize((((v_7.xyz * in_v.normal.x) + (v_12.xyz * in_v.normal.y)) + (v_17.xyz * in_v.normal.z)));
    worldNormal_1 = tmpvar_22;
    float3 tmpvar_23;
    float3 I_24;
    I_24 = (tmpvar_6 - _WorldSpaceCameraPos);
    tmpvar_23 = (I_24 - (2 * (dot(worldNormal_1, I_24) * worldNormal_1)));
    tmpvar_3 = tmpvar_23;
    float4 o_25;
    float4 tmpvar_26;
    tmpvar_26 = (tmpvar_2 * 0.5);
    float2 tmpvar_27;
    tmpvar_27.x = tmpvar_26.x;
    tmpvar_27.y = (tmpvar_26.y * _ProjectionParams.x);
    o_25.xy = (tmpvar_27 + tmpvar_26.w);
    o_25.zw = tmpvar_2.zw;
    tmpvar_4.zw = float2(0, 0);
    tmpvar_4.xy = float2(0, 0);
    float4 v_28;
    v_28.x = tmpvar_8;
    v_28.y = tmpvar_9;
    v_28.z = tmpvar_10;
    v_28.w = tmpvar_11;
    float4 v_29;
    v_29.x = tmpvar_13;
    v_29.y = tmpvar_14;
    v_29.z = tmpvar_15;
    v_29.w = tmpvar_16;
    float4 v_30;
    v_30.x = tmpvar_18;
    v_30.y = tmpvar_19;
    v_30.z = tmpvar_20;
    v_30.w = tmpvar_21;
    float4 tmpvar_31;
    tmpvar_31.w = 1;
    tmpvar_31.xyz = normalize((((v_28.xyz * in_v.normal.x) + (v_29.xyz * in_v.normal.y)) + (v_30.xyz * in_v.normal.z)));
    float4 normal_32;
    normal_32 = tmpvar_31;
    float3 res_33;
    float3 x_34;
    x_34.x = dot(unity_SHAr, normal_32);
    x_34.y = dot(unity_SHAg, normal_32);
    x_34.z = dot(unity_SHAb, normal_32);
    float3 x1_35;
    float4 tmpvar_36;
    tmpvar_36 = (normal_32.xyzz * normal_32.yzzx);
    x1_35.x = dot(unity_SHBr, tmpvar_36);
    x1_35.y = dot(unity_SHBg, tmpvar_36);
    x1_35.z = dot(unity_SHBb, tmpvar_36);
    res_33 = (x_34 + (x1_35 + (unity_SHC.xyz * ((normal_32.x * normal_32.x) - (normal_32.y * normal_32.y)))));
    float _tmp_dvx_87 = max(((1.055 * pow(max(res_33, float3(0, 0, 0)), float3(0.4166667, 0.4166667, 0.4166667))) - 0.055), float3(0, 0, 0));
    res_33 = float3(_tmp_dvx_87, _tmp_dvx_87, _tmp_dvx_87);
    tmpvar_5 = res_33;
    out_v.vertex = tmpvar_2;
    out_v.xlv_TEXCOORD0 = TRANSFORM_TEX(in_v.texcoord.xy, _MainTex);
    out_v.xlv_TEXCOORD1 = tmpvar_3;
    out_v.xlv_TEXCOORD2 = tmpvar_6;
    out_v.xlv_TEXCOORD3 = o_25;
    out_v.xlv_TEXCOORD4 = tmpvar_4;
    out_v.xlv_TEXCOORD5 = tmpvar_5;
    return out_v;
}

#define CODE_BLOCK_FRAGMENT
OUT_Data_Frag frag(v2f in_f)
{
    OUT_Data_Frag out_f;
    float4 tmpvar_1;
    float4 c_2;
    float4 light_3;
    float3 tmpvar_4;
    tmpvar_4 = in_f.xlv_TEXCOORD1;
    float3 tmpvar_5;
    float4 reflcol_6;
    float4 tmpvar_7;
    tmpvar_7 = tex2D(_MainTex, in_f.xlv_TEXCOORD0);
    reflcol_6 = (texCUBE(_Cube, tmpvar_4) * tmpvar_7.w);
    tmpvar_5 = (reflcol_6.xyz * _ReflectColor.xyz);
    float4 tmpvar_8;
    tmpvar_8 = tex2D(_LightBuffer, in_f.xlv_TEXCOORD3);
    light_3 = tmpvar_8;
    light_3 = (-log2(max(light_3, float4(0.001, 0.001, 0.001, 0.001))));
    light_3.xyz = (light_3.xyz + in_f.xlv_TEXCOORD5);
    float4 c_9;
    c_9.xyz = ((tmpvar_7 * _Color).xyz * light_3.xyz);
    c_9.w = (reflcol_6.w * _ReflectColor.w);
    c_2 = c_9;
    c_2.xyz = (c_2.xyz + tmpvar_5);
    c_2.w = 1;
    tmpvar_1 = c_2;
    out_f.color = tmpvar_1;
    return out_f;
}


ENDCG

}
 Pass {
  Name "DEFERRED"
  Tags { "LIGHTMODE"="Deferred" "RenderType"="Opaque" }
  GpuProgramID 317090
CGPROGRAM
//#pragma target 4.0

#pragma vertex vert
#pragma fragment frag

#include "UnityCG.cginc"
#define conv_mxt4x4_0(mat4x4) float4(mat4x4[0].x,mat4x4[1].x,mat4x4[2].x,mat4x4[3].x)
#define conv_mxt4x4_1(mat4x4) float4(mat4x4[0].y,mat4x4[1].y,mat4x4[2].y,mat4x4[3].y)
#define conv_mxt4x4_2(mat4x4) float4(mat4x4[0].z,mat4x4[1].z,mat4x4[2].z,mat4x4[3].z)
#define conv_mxt4x4_3(mat4x4) float4(mat4x4[0].w,mat4x4[1].w,mat4x4[2].w,mat4x4[3].w)


#define CODE_BLOCK_VERTEX
//uniform float3 _WorldSpaceCameraPos;
//uniform float4 unity_SHAr;
//uniform float4 unity_SHAg;
//uniform float4 unity_SHAb;
//uniform float4 unity_SHBr;
//uniform float4 unity_SHBg;
//uniform float4 unity_SHBb;
//uniform float4 unity_SHC;
//uniform float4x4 UNITY_MATRIX_MVP;
//uniform float4x4 unity_ObjectToWorld;
// uniform float4x4 _World2Object;
uniform float4 _MainTex_ST;
uniform sampler2D _MainTex;
uniform samplerCUBE _Cube;
uniform float4 _Color;
uniform float4 _ReflectColor;
struct appdata_t
{
    float4 vertex :POSITION;
    float3 normal :NORMAL;
    float4 texcoord :TEXCOORD0;
};

struct OUT_Data_Vert
{
    float2 xlv_TEXCOORD0 :TEXCOORD0;
    float3 xlv_TEXCOORD1 :TEXCOORD1;
    float3 xlv_TEXCOORD2 :TEXCOORD2;
    float3 xlv_TEXCOORD3 :TEXCOORD3;
    float4 xlv_TEXCOORD4 :TEXCOORD4;
    float3 xlv_TEXCOORD5 :TEXCOORD5;
    float4 vertex :SV_POSITION;
};

struct v2f
{
    float2 xlv_TEXCOORD0 :TEXCOORD0;
    float3 xlv_TEXCOORD1 :TEXCOORD1;
    float3 xlv_TEXCOORD2 :TEXCOORD2;
    float3 xlv_TEXCOORD5 :TEXCOORD5;
};

struct OUT_Data_Frag
{
    float4 color :SV_Target0;
    float4 color1 :SV_Target1;
    float4 color2 :SV_Target2;
    float4 color3 :SV_Target3;
};

OUT_Data_Vert vert(appdata_t in_v)
{
    OUT_Data_Vert out_v;
    float3 worldNormal_1;
    float3 tmpvar_2;
    float3 tmpvar_3;
    float4 tmpvar_4;
    float3 tmpvar_5;
    tmpvar_5 = mul(unity_ObjectToWorld, in_v.vertex).xyz;
    float4 v_6;
    v_6.x = conv_mxt4x4_0(unity_WorldToObject).x;
    v_6.y = conv_mxt4x4_1(unity_WorldToObject).x;
    v_6.z = conv_mxt4x4_2(unity_WorldToObject).x;
    v_6.w = conv_mxt4x4_3(unity_WorldToObject).x;
    float4 v_7;
    v_7.x = conv_mxt4x4_0(unity_WorldToObject).y;
    v_7.y = conv_mxt4x4_1(unity_WorldToObject).y;
    v_7.z = conv_mxt4x4_2(unity_WorldToObject).y;
    v_7.w = conv_mxt4x4_3(unity_WorldToObject).y;
    float4 v_8;
    v_8.x = conv_mxt4x4_0(unity_WorldToObject).z;
    v_8.y = conv_mxt4x4_1(unity_WorldToObject).z;
    v_8.z = conv_mxt4x4_2(unity_WorldToObject).z;
    v_8.w = conv_mxt4x4_3(unity_WorldToObject).z;
    float3 tmpvar_9;
    tmpvar_9 = normalize((((v_6.xyz * in_v.normal.x) + (v_7.xyz * in_v.normal.y)) + (v_8.xyz * in_v.normal.z)));
    worldNormal_1 = tmpvar_9;
    tmpvar_3 = worldNormal_1;
    float3 tmpvar_10;
    float3 I_11;
    I_11 = (tmpvar_5 - _WorldSpaceCameraPos);
    tmpvar_10 = (I_11 - (2 * (dot(worldNormal_1, I_11) * worldNormal_1)));
    tmpvar_2 = tmpvar_10;
    tmpvar_4.zw = float2(0, 0);
    tmpvar_4.xy = float2(0, 0);
    float3 normal_12;
    normal_12 = worldNormal_1;
    float4 tmpvar_13;
    tmpvar_13.w = 1;
    tmpvar_13.xyz = float3(normal_12);
    float3 res_14;
    float3 x_15;
    x_15.x = dot(unity_SHAr, tmpvar_13);
    x_15.y = dot(unity_SHAg, tmpvar_13);
    x_15.z = dot(unity_SHAb, tmpvar_13);
    float3 x1_16;
    float4 tmpvar_17;
    tmpvar_17 = (normal_12.xyzz * normal_12.yzzx);
    x1_16.x = dot(unity_SHBr, tmpvar_17);
    x1_16.y = dot(unity_SHBg, tmpvar_17);
    x1_16.z = dot(unity_SHBb, tmpvar_17);
    res_14 = (x_15 + (x1_16 + (unity_SHC.xyz * ((normal_12.x * normal_12.x) - (normal_12.y * normal_12.y)))));
    float _tmp_dvx_85 = max(((1.055 * pow(max(res_14, float3(0, 0, 0)), float3(0.4166667, 0.4166667, 0.4166667))) - 0.055), float3(0, 0, 0));
    res_14 = float3(_tmp_dvx_85, _tmp_dvx_85, _tmp_dvx_85);
    out_v.vertex = UnityObjectToClipPos(in_v.vertex);
    out_v.xlv_TEXCOORD0 = TRANSFORM_TEX(in_v.texcoord.xy, _MainTex);
    out_v.xlv_TEXCOORD1 = tmpvar_2;
    out_v.xlv_TEXCOORD2 = tmpvar_3;
    out_v.xlv_TEXCOORD3 = tmpvar_5;
    out_v.xlv_TEXCOORD4 = tmpvar_4;
    out_v.xlv_TEXCOORD5 = max(float3(0, 0, 0), res_14);
    return out_v;
}

#define CODE_BLOCK_FRAGMENT
OUT_Data_Frag frag(v2f in_f)
{
    OUT_Data_Frag out_f;
    float4 outDiffuse_1;
    float4 outEmission_2;
    float3 tmpvar_3;
    float3 tmpvar_4;
    tmpvar_4 = in_f.xlv_TEXCOORD1;
    tmpvar_3 = in_f.xlv_TEXCOORD2;
    float4 tmpvar_5;
    tmpvar_5 = tex2D(_MainTex, in_f.xlv_TEXCOORD0);
    float4 tmpvar_6;
    tmpvar_6 = (tmpvar_5 * _Color);
    float4 outDiffuseOcclusion_7;
    float4 outNormal_8;
    float4 emission_9;
    float4 tmpvar_10;
    tmpvar_10.w = 1;
    tmpvar_10.xyz = tmpvar_6.xyz;
    outDiffuseOcclusion_7 = tmpvar_10;
    float4 tmpvar_11;
    tmpvar_11.w = 1;
    tmpvar_11.xyz = float3(((tmpvar_3 * 0.5) + 0.5));
    outNormal_8 = tmpvar_11;
    float4 tmpvar_12;
    tmpvar_12.w = 1;
    tmpvar_12.xyz = ((texCUBE(_Cube, tmpvar_4) * tmpvar_5.w).xyz * _ReflectColor.xyz);
    emission_9 = tmpvar_12;
    emission_9.xyz = (emission_9.xyz + (tmpvar_6.xyz * in_f.xlv_TEXCOORD5));
    outDiffuse_1.xyz = outDiffuseOcclusion_7.xyz;
    outEmission_2.w = emission_9.w;
    outEmission_2.xyz = exp2((-emission_9.xyz));
    outDiffuse_1.w = 1;
    out_f.color = outDiffuse_1;
    out_f.color1 = float4(0, 0, 0, 0);
    out_f.color2 = outNormal_8;
    out_f.color3 = outEmission_2;
    return out_f;
}


ENDCG

}
}
Fallback "Legacy Shaders/Reflective/VertexLit"
}